JavaScript Const

স্ট্যাটিক ভেরিয়েবল ম্যানিপুলেট করতে ES6 const শিখুন

JavaScript Const

constকীওয়ার্ডটি ES6 (2015) এ চালু করা হয়েছিল।

Cannot be Redeclared: constসাথে সংজ্ঞায়িত ভেরিয়েবল পুনরায় ঘোষণা করা যাবে না
Cannot be Reassigned: constএর সাথে সংজ্ঞায়িত ভেরিয়েবল পুনরায় বরাদ্দ করা যাবে না
Block Scope: constসঙ্গে সংজ্ঞায়িত ভেরিয়েবল ব্লক সুযোগ আছে

Cannot be Reassigned

constকীওয়ার্ড দিয়ে সংজ্ঞায়িত একটি ভেরিয়েবল পুনরায় বরাদ্দ করা যাবে না:

Example: const cannot be reassigned

const PI = 3.141592653589793;
PI = 3.14;      // ❌ This will give an error
PI = PI + 10;   // ❌ This will also give an error

Must be Assigned

JavaScript constযখন তারা ঘোষণা করা হয় তখন ভেরিয়েবলকে অবশ্যই একটি মান বরাদ্দ করতে হবে:

✅ Correct

const PI = 3.14159265359;

মান পরিবর্তনশীল ঘোষণায় বরাদ্দ করা হয়

❌ Incorrect

const PI;  // ❌ Error
PI = 3.14159265359;

পরিবর্তনশীল ঘোষণায় একটি মান বরাদ্দ করা হয় না

When to use JavaScript const?

সর্বদা একটি পরিবর্তনশীল যদি আপনি জানেন যে মানটি কখনই পরিবর্তন করা উচিত নয়constসঙ্গে ঘোষণা

আপনি যখন ঘোষণা করেনconstব্যবহার করুন:

Array

নতুন অ্যারে

Object

নতুন অবজেক্ট

Function

নতুন ফাংশন

RegExp

নতুন রেগুলার এক্সপ্রেশন

🏆সর্বোত্তম অনুশীলন:

সর্বদা প্রথমconstব্যবহার করুন, এবং শুধুমাত্র যদি আপনাকে পরে পুনরায় বরাদ্দ করতে হয়letএ স্যুইচ করুনvari ব্যবহার করবেন না।

Constant Objects and Arrays

constকীওয়ার্ডটি কিছুটা ভুল বোঝাবুঝি হয়েছে।

এটি একটি নির্দিষ্ট মান সংজ্ঞায়িত করে না। এটি একটি মানের একটি ধ্রুবক রেফারেন্স সংজ্ঞায়িত করে।

You can NOT: But you CAN:
একটি ধ্রুবক মান পুনরায় বরাদ্দ করুন একটি স্ট্যাটিক অ্যারের উপাদানগুলি প্রতিস্থাপন করুন
স্ট্যাটিক অ্যারে পুনরায় বরাদ্দ করুন স্থির বস্তুর বৈশিষ্ট্য পরিবর্তন করুন
স্ট্যাটিক অবজেক্ট পুনরায় বরাদ্দ করুন অ্যারেতে উপাদান যোগ করুন

Constant Arrays

আপনি একটি স্ট্যাটিক অ্যারের উপাদান পরিবর্তন করতে পারেন:

Example: Modifying constant array

// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];

// You can change an element:
cars[0] = "Toyota";  // ✅ Allowed

// You can add an element:
cars.push("Audi");    // ✅ Allowed

কিন্তু আপনি অ্যারে পুনরায় বরাদ্দ করতে পারবেন না:

Example: Cannot reassign constant array

const cars = ["Saab", "Volvo", "BMW"];

cars = ["Toyota", "Volvo", "Audi"];  // ❌ ERROR

💡বোঝা:

constঅ্যারে ভেরিয়েবল যা নির্দেশ করে তা পরিবর্তন করে না - এটি অ্যারেকে পরিবর্তন হতে বাধা দেয় না।

Constant Objects

আপনি একটি স্ট্যাটিক বস্তুর বৈশিষ্ট্য পরিবর্তন করতে পারেন:

Example: Modifying constant object

// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};

// You can change a property:
car.color = "red";  // ✅ Allowed

// You can add a property:
car.owner = "Johnson";  // ✅ Allowed

কিন্তু আপনি বস্তুটি পুনরায় বরাদ্দ করতে পারবেন না:

Example: Cannot reassign constant object

const car = {type:"Fiat", model:"500", color:"white"};

car = {type:"Volvo", model:"EX60", color:"red"};  // ❌ ERROR

Difference Between var, let and const

Feature var let const
Scope No Block Scope Block Scope Block Scope
Redeclare Yes No No
Reassign Yes Yes No
Hoisted Yes No No
Binds this Yes No No

What is Good?

letএবংconstব্লক সুযোগ রয়েছে
letএবংconstপুনরায় ঘোষণা করা যাবে না
letএবংconstব্যবহারের আগে অবহিত করা আবশ্যক
letএবংconst thisসাথে আবদ্ধ হয় না
letএবংconstউত্তোলন করা হয় না

What is Not Good?

varঘোষণা করার প্রয়োজন নেই (ডিফল্ট বিশ্বব্যাপী)
varউত্তোলন করা হয়েছে (বিজ্ঞপ্তির আগে ব্যবহার করা যেতে পারে)
var thisসাথে আবদ্ধ হয়

Browser Support

letএবংconstইন্টারনেট এক্সপ্লোরার 11 বা পূর্ববর্তী সংস্করণে কীওয়ার্ড সমর্থিত নয়।

Browser Version Release Date
Chrome 49 Mar, 2016
Edge 12 Jul, 2015
Firefox 36 Jan, 2015
Safari 11 Sep, 2017
Opera 36 Mar, 2016

Block Scope

constব্লক স্কোপ সম্পর্কে একটি পরিবর্তনশীল ঘোষণা করাletপছন্দ

Example: Block Scope with const

const x = 10;
// Here x is 10

{
  const x = 2;
  // Here x is 2
}

// Here x is 10

📚শেখা:

ব্লক স্কোপ সম্পর্কে আরও জানতে জাভাস্ক্রিপ্ট স্কোপ অধ্যায় পড়ুন।

Redeclaring Rules

একটি জাভাস্ক্রিপ্টvarএকটি ভেরিয়েবল পুনঃঘোষণা একটি প্রোগ্রামের যেকোনো জায়গায় অনুমোদিত:

Example: Allowed with var

var x = 2;     // Allowed
var x = 3;     // Allowed
x = 4;         // Allowed

একই সুযোগে একজন থাকবেvarবাletপরিবর্তনশীলconstতাই পুনরায় ঘোষণা অনুমোদিত নয়:

Example: Not allowed to redeclare as const

var x = 2;     // Allowed
const x = 2;   // ❌ Not allowed

{
  let x = 2;   // Allowed
  const x = 2; // ❌ Not allowed
}

{
  const x = 2; // Allowed
  const x = 2; // ❌ Not allowed
}

অন্য সুযোগে, বা অন্য মডিউলে,constএকটি পরিবর্তনশীল পুনঃঘোষণা এর সাথে অনুমোদিত:

Example: Allowed in different scopes

const x = 2;       // Allowed

{
  const x = 3;   // Allowed (different block)
}

{
  const x = 4;   // Allowed (different block)
}

Hoisting

varএর সাথে সংজ্ঞায়িত ভেরিয়েবলগুলি উপরে উত্তোলন করা হয়েছে এবং যে কোনো সময় আরম্ভ করা যেতে পারে।

Example: var Hoisting

carName = "Volvo";
var carName; // ✅ Allowed (hoisted)

📚শেখা:

Hoisting সম্পর্কে আরও জানতে, JavaScript Hoisting অধ্যায় পড়ুন।

constএর সাথে সংজ্ঞায়িত ভেরিয়েবলগুলি উপরে উত্তোলন করা হয়েছে, কিন্তু আরম্ভ করা হয়নি।

Example: const Hoisting (Temporal Dead Zone)

alert(carName);    // ❌ ReferenceError
const carName = "Volvo";

Temporal Dead Zone:

constভেরিয়েবলগুলি উত্তোলন করা হয়, কিন্তু "টেম্পোরাল ডেড জোন"-এ থাকে। ঘোষণার আগে এগুলি ব্যবহার করার চেষ্টা করা একটি রেফারেন্স ত্রুটির কারণ হবে৷

Exercise

সত্য বা মিথ্যা।

স্ট্রিং বা সংখ্যার ভেরিয়েবল,constকীওয়ার্ড দিয়ে তৈরি, তাদের মান কখনই পরিবর্তন করা যায় না।

True
✓ ঠিক আছে! স্ট্রিং এবং সংখ্যার মতো আদিম মানের জন্য,constআসলে স্থিতিশীল। তাদের মান পরিবর্তন করা যাবে না।
False
✗ ভুল! স্ট্রিং এবং সংখ্যা আদিম মান।constএর সাথে আদিম মানগুলি সংজ্ঞায়িত করার সময়, মানটি সম্পূর্ণ অপরিবর্তনীয়। অভ্যন্তরীণ বিষয়বস্তু শুধুমাত্র অবজেক্ট এবং অ্যারেগুলির জন্য পরিবর্তন করা যেতে পারে।